package com.otitan.la.forest.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.otitan.la.forest.system.dto.OrganizationDTO;
import com.otitan.la.forest.system.entity.OrganizationEntity;
import com.otitan.la.forest.system.vo.OrganizationStationVO;
import com.otitan.la.forest.system.vo.OrganizationTreeVO;
import com.otitan.webapp.framework.basepro.model.DataResult;
import org.springframework.validation.BindingResult;

import java.util.List;

/**
 * 组织机构表
 *
 * @author jiacs
 * @email xxx
 * @date 2020-09-15 10:34:19
 */
public interface OrganizationService extends IService<OrganizationEntity> {
    /**
     * 新增
     * @return
     */
    DataResult add(OrganizationEntity organization, BindingResult bindingResult);

    /**
     * 批量删除
     * @return
     */
    DataResult batchDelete(List<String> ids);

    /**
     * 修改
     * @return
     */
    DataResult editor(OrganizationEntity organization, BindingResult bindingResult);

    /**
     * 列表查询（分页）
     * @return
     */
    DataResult findPageData(long page, long size, OrganizationDTO organization);

    /**
     * 根据ID查询
     * @return
     */
    DataResult findOne(String id);

    List<OrganizationTreeVO> getOrganizationTree();

    /**
     * 获取所有管理站
     * @author Sunke
     * @param []
     * @return java.util.List<java.util.Map>
     * @exception
     * @date 2020/9/29 0029 17:51
     */
    List<OrganizationStationVO> findOrgMap();

    /**
     * 根据用户ID获取组织机构信息
     * @author jiachangsen
     * @param [id]
     * @return java.util.List<com.otitan.la.forest.system.entity.OrganizationEntity>
     * @exception
     * @date 2020/09/30 21:33
     */
    List<OrganizationEntity> findOrgInfoByUserId(String userId);

    /**
     * @Description:    通过组织机构名查询地区编码和id
     * @Author:        wangqingsong
     * @exception          [orgName]
     * @return             com.otitan.webapp.framework.basepro.model.DataResult
     * @CreateDate:     2020/10/22 14:59
     */
    DataResult findCodeAndIdByOrg(String orgName);


    /**
     * @Description:    通过id查询组织机构名
     * @Author:        wangqingsong
     * @exception          [id]
     * @return             com.otitan.webapp.framework.basepro.model.DataResult
     * @CreateDate:     2020/10/22 16:44
     */
    DataResult findOrgById(String id);
}

